package com.sc.sysconfig.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sc.sysconfig.dto.MenuQueryDTO;
import com.sc.sysconfig.entity.SysMenu;
import com.sc.sysconfig.vo.CascaderVO;
import com.sc.sysconfig.vo.OptionVO;
import com.sc.sysconfig.vo.PageVO;
import com.sc.sysconfig.vo.TreeVO;

import java.util.List;


/**
 * 系统菜单服务
 *
 * @author 徐赫阳
 * @date 2021/09/02
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 把菜单列表
     *
     * @param queryDTO 查询dto
     * @return {@link PageVO}<{@link SysMenu}>
     */
    PageVO<SysMenu> getMenuList(MenuQueryDTO queryDTO);

    /**
     * 把菜单按钮列表
     *
     * @param queryDTO 查询dto
     * @return {@link PageVO}<{@link SysMenu}>
     */
    PageVO<SysMenu> getMenuButtonList(MenuQueryDTO queryDTO);

    /**
     * 把菜单选项
     *
     * @return {@link List}<{@link OptionVO}>
     */
    List<OptionVO> getMenuOption();

    /**
     * 把菜单选项
     *
     * @return {@link List}<{@link OptionVO}>
     */
    List<CascaderVO> getMenuCascader();

    /**
     * 获取用户菜单
     *
     * @param loginName 登录名
     * @return {@link List}<{@link SysMenu}>
     */
    List<SysMenu> getUserMenu(String loginName);

    /**
     * 把菜单树
     *
     * @return {@link List}<{@link TreeVO}>
     */
    List<TreeVO> getMenuTree();

}
